// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件，未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from './request'

/**
 * @description 列表
 */
export function bannerList(data) {
    return request.get('mings/lunbo/lst', data)
}
/**
 * @description 新增表单
 */
export function bannerAdd(data) {
    return request.post('mings/lunbo/create',data)
}
/**
 * @description 删除
 */
export function bannerDelete(data) {
    return request.get('mings/lunbo/delete/'+data)
}
/**
 * @description 改状态
 */
export function bannerChangeStatus(data) {
    return request.get('mings/lunbo/status', data)
}

// 获取房间列表

export function roomList(data) {
  return request.get('mings/room/lst', data)
}


// 获取房间详情
export function roomDetail(id) {
  return request.get(`mings/room/detail/${id}`);
}

// 新增房间
export function roomCreate(data) {
  return request.post('mings/room/create', data);
}


// 更新房间
export function roomUpdate(id, data) {
  return request.post(`mings/room/update/${id}`, data);
}

// 删除房间
export function roomDelete(id) {
  return request.delete(`mings/room/delete/${id}`);
}
export function roomChangeStatus(data) {
  return request.post('mings/room/changestatus', data);
}

// ==================== 预约时间段相关接口 ====================

// 获取房间时间段列表
export function roomTimeslotList(data) {
  return request.get('mings/timeslot/lst', data);
}

// 批量生成时间段
export function generateTimeslots(data) {
  return request.post('mings/timeslot/generate', data);
}

// 自动生成一周时间段（给新添加的房间使用）
export function generateWeeklySlots(data) {
  return request.post('mings/timeslot/generate-weekly', data);
}

// 更新时间段状态和价格
export function updateTimeslot(data) {
  return request.post('mings/timeslot/update', data);
}

// 批量更新时间段
export function batchUpdateTimeslots(data) {
  return request.post('mings/timeslot/batch-update', data);
}

// 删除时间段
export function deleteTimeslot(id) {
  return request.delete(`mings/timeslot/delete/${id}`);
}

// 获取指定日期范围的时间段
export function getTimeslotsByDateRange(data) {
  return request.get('mings/timeslot/date-range', data);
}

// ==================== 预约订单相关接口 ====================

// 获取预约列表
export function reservationList(data) {
  return request.get('mings/reservation/lst', data);
}

// 创建预约
export function createReservation(data) {
  return request.post('mings/reservation/create', data);
}

// 更新预约状态
export function updateReservationStatus(data) {
  return request.post('mings/reservation/update-status', data);
}

// 获取预约详情
export function reservationDetail(id) {
  return request.get(`mings/reservation/detail/${id}`);
}

// 取消预约
export function cancelReservation(id) {
  return request.post(`mings/reservation/cancel/${id}`);
}

// ==================== 订单管理相关接口 ====================

// 获取订单列表
export function orderList(data) {
  return request.get('mings/order/list', data);
}

// 更新订单状态
export function updateOrderStatus(data) {
  return request.post('mings/order/status', data);
}

// 取消订单
export function cancelOrder(id) {
  return request.post(`mings/order/delete/${id}`);
}

// 获取订单详情
export function orderDetail(id) {
  return request.get(`mings/order/detail/${id}`);
}

// 创建订单
export function createOrder(data) {
  return request.post('mings/order/create', data);
}

// 订单统计
export function orderStatistics(data) {
  return request.get('mings/order/statistics', data);
}

// 核销订单
export function verifyOrder(data) {
  return request.post('mings/order/verify', data);
}

// ==================== 退款相关接口 ====================

/**
 * 申请退款 - 支持自动退款
 * @description 用户或商家申请退款，支持直接退款到用户账户
 * @param {Object} data - 退款申请数据
 * @param {number} data.order_id - 订单ID
 * @param {string} data.refund_reason - 退款原因
 * @param {number} data.refund_amount - 退款金额（可选，默认全额退款）
 * @param {string} data.refund_type - 退款类型：1=仅退款 2=退款退货
 * @param {boolean} data.auto_approve - 是否自动审核并退款（可选，默认true直接退款）
 * @returns {Promise} API响应
 * @example
 * // 直接退款（默认）
 * applyRefund({
 *   order_id: 123,
 *   refund_reason: '用户取消订单',
 *   refund_amount: 299.00,
 *   auto_approve: true  // 默认true，直接退款
 * })
 * 
 * // 仅申请，等待审核
 * applyRefund({
 *   order_id: 123,
 *   refund_reason: '用户取消订单',
 *   auto_approve: false  // 等待人工审核
 * })
 */
export function applyRefund(data) {
  return request.post('mings/refund/apply', data);
}

/**
 * 获取退款列表
 * @description 获取商户的退款订单列表
 * @param {Object} data - 查询参数
 * @param {number} data.page - 页码
 * @param {number} data.limit - 每页数量
 * @param {string} data.status - 退款状态筛选
 * @param {string} data.keyword - 搜索关键词（订单号/客户姓名）
 * @returns {Promise} API响应
 */
export function refundList(data) {
  return request.get('mings/refund/list', data);
}

/**
 * 获取退款详情
 * @description 获取指定退款单的详细信息
 * @param {number} id - 退款单ID
 * @returns {Promise} API响应
 */
export function refundDetail(id) {
  return request.get(`mings/refund/detail/${id}`);
}

/**
 * 商家处理退款
 * @description 商家同意或拒绝退款申请
 * @param {Object} data - 处理数据
 * @param {number} data.refund_id - 退款单ID
 * @param {number} data.status - 处理状态：1=同意 -1=拒绝
 * @param {string} data.remark - 处理备注
 * @returns {Promise} API响应
 */
export function processRefund(data) {
  return request.post('mings/refund/process', data);
}

/**
 * 退款统计
 * @description 获取退款相关的统计数据
 * @param {Object} data - 查询参数
 * @param {string} data.date_range - 日期范围
 * @returns {Promise} API响应
 */
export function refundStatistics(data) {
  return request.get('mings/refund/statistics', data);
}